#ifndef WIDGET_H
#define WIDGET_H

#include <QOpenGLBuffer>
#include <QOpenGLFunctions>
#include <QOpenGLWidget>

class QOpenGLShaderProgram;

class Widget : public QOpenGLWidget, protected QOpenGLFunctions
{
    Q_OBJECT

public:
    Widget(QWidget *parent = Q_NULLPTR);
    virtual ~Widget();

protected:
    void initializeGL() override;
    void resizeGL(int w, int h) override;
    void paintGL() override;

private:
    void teardownGL();
    void printContextInformation();

private:
    QOpenGLShaderProgram *program;
    QOpenGLBuffer vbo;
    QOpenGLBuffer ebo;
};

#endif // WIDGET_H
